1   /*
2    * Copyright (C) 2007 The Guava Authors
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package com.google.common.eventbus;
18  
19  import com.google.common.collect.Lists;
20  
21  import junit.framework.Assert;
22  
23  import java.util.List;
24  
25  import javax.annotation.Nullable;
26  
27  /**
28   * A simple EventSubscriber mock that records Strings.
29   *
30   * For testing fun, also includes a landmine method that EventBus tests are
31   * required <em>not</em> to call ({@link #methodWithoutAnnotation(String)}).
32   *
33   * @author Cliff Biffle
34   */
35  public class StringCatcher {
36    private List<String> events = Lists.newArrayList();
37  
38    @Subscribe
39    public void hereHaveAString(@Nullable String string) {
40      events.add(string);
41    }
42  
43    public void methodWithoutAnnotation(@Nullable String string) {
44      Assert.fail("Event bus must not call methods without @Subscribe!");
45    }
46  
47    public List<String> getEvents() {
48      return events;
49    }
50  }